#include <sw/redis++/redis++.h>
#include <iostream>
#include <string>
#include <thread>
#include <chrono>

using namespace sw::redis;

// PUD SUB 发布订阅模式
// Redis 检查是否有客户端订阅了 "news" 频道
// 如果有订阅者，则将消息发送给这些订阅者
// 如果没有订阅者，消息直接丢弃
// 消息不会存储在 Redis 的 key 空间中
int main() {
    try {
        // 创建 Redis 连接
        ConnectionOptions connection_options;
        connection_options.host = "127.0.0.1";
        connection_options.port = 6379;
        
        Redis redis(connection_options);
        
        // 发布消息到不同频道
        redis.publish("news", "Breaking news: Something happened!");
        redis.publish("sports", "Football match result: 2-1");
        redis.publish("news.world", "International news update");
        redis.publish("news.local", "Local news update");
        
        std::cout << "Messages published successfully!" << std::endl;
        
    } catch (const Error &e) {
        std::cerr << "Error: " << e.what() << std::endl;
        return 1;
    }
    
    return 0;
}